دنياي زيرزميني مهندسي معكوس اگر اجرا مي‌شود، مي‌توان آن را شكست داد

 

تا به ‌حال چند برنامه روي سيستم‌عامل رايانه‌تان نصب كرده‌ايد؟ هنگام نصب نرم‌افزارها از چه روشي براي فعال‌سازي برنامه و استفاده بدون محدوديت از آن كمك گرفته‌ايد؟ اگر توجه كرده باشيد گاهي اوقات هنگام نصب برنامه‌ها از شماره سريال براي ثبت آن استفاده مي‌شود. گاهي اوقات پس از عمليات نصب نيازمند دريافت كد فعال‌سازي نرم‌افزار هستيد كه در اغلب موارد مخصوصا در ايران اين كد فعال‌سازي همراه با فايل‌هاي نصب نرم‌افزار در اختيار شما قرار مي‌گيرد. در موارد ديگر نيز پس از نصب نرم‌افزار ‌بايد فايل نصب شده نرم‌افزار را با يك فايل به اصطلاح Patch شده جابه‌جا كنيد تا بتوانيد از نرم‌افزار مورد نظر بدون محدوديت استفاده كنيد. در حالت كلي به اين نرم‌افزارها كرك شده (Crack) مي‌گويند و اين به معناي آن است كه شما براي استفاده بدون محدوديت از نرم‌افزار هيچ پولي پرداخت نمي‌كنيد و با روش‌هاي مختلفي نرم‌افزار را به‌صورت كرك شده مورد استفاده قرار مي‌دهيد.تا به حال فكر كرده‌ايد اين كرك‌ها چطور ساخته مي‌شود؟ به‌عنوان مثال نرم‌افزارهايي را در نظر بگيريد كه پس از نصب، يك كد منحصر به‌فرد را به رايانه شما اختصاص مي‌دهد و كد فعال‌سازي برنامه نيز با توجه به كد اختصاصي رايانه شما ‌بايد ايجاد شود. در چنين شرايطي فكر كرده‌ايد كه چطور فايل‌هاي keygen كه براي ايجاد شماره سريال به‌كار مي‌رود، الگوريتم ايجاد كد معادل براي كد انحصاري شما را پيدا كرده و كد موردنيازتان را در اختيار شما قرار مي‌دهد؟اين هفته قصد داريم شما را با علم مهندسي معكوس و دنياي زيرزميني اين علم در ايران آشنا كنيم. در همين زمينه گفت‌وگويي داريم با دكتر معين زماني كه بيش از 13 سال در علوم رايانه‌اي فعاليت دارند و از چهر‌ه‌هاي شناخته شده ميان متخصصان علوم رايانه و فناوري اطلاعات به‌شمار مي‌روند.

آقاي دكتر، مهندسي معكوس چيست و در چه زمينه‌هايي كاربرد دارد؟

مهندسي معكوس علم بسيار گسترده‌اي است، به‌طوري‌كه در هر زمينه و هر مبحثي مي‌توانيم ردي از آن را مشاهده كنيم. صنايع غذايي، پزشكي، صنايع نظامي، الكترونيك و تمامي علوم مرتبط با رايانه برخي از مواردي است كه مهندسي معكوس بوضوح در آنها مشاهده مي‌شود. مبحث مهندسي معكوس بسيار پيچيده است. اين مبحث شامل يك‌سري فرمول‌ها، دستيابي‌ها، پيگيري‌ها، رديابي‌ها و... است.

مهندسي معكوس فقط با علم افراد سر و كار دارد يا نيازمند نبوغ خاصي است؟

بحث نبوغ را نمي‌توان خارج از بحث علمي درنظر گرفت؛ چرا كه مطمئنا فردي كه با مهندسي معكوس سر و كار دارد علاوه بر تسلط بر علوم مورد نياز در اين رشته، از تجربه و نبوغي بيش از افراد ديگر نيز برخوردار است. به‌طور كلي يك كاربر عادي كه روي مباحث مختلفي همچون نرم‌افزار، سخت‌افزار و سيستم‌عامل تسلط داشته باشد هيچ‌وقت نمي‌تواند براحتي وارد مبحث مهندسي معكوس شود؛ چرا كه اين كاربر در انجام همه كارها روال انجام آن كار را در پيش گرفته، در صورتي كه براي مهندسي معكوس بايد راه‌ها و روش‌هايي را غير از راه و روش متداول و معمول كه همه به‌كار مي‌گيرند، مورد استفاده قرار دهيد. به‌عنوان مثال وقتي بخواهيد يك قطعه مكانيكي در ماشين را مورد مهندسي معكوس قرار دهيد، بايد درباره كوچك‌ترين موارد و موضوعاتي همچون جنس قطعه، طريقه ساخت، طريقه عملكرد و دليل استفاده از آن قطعه و... شناخت و اطلاعات كاملي را به‌دست بياوريد و پس از آن مهندسي معكوس روي آن قطعه را آغاز كنيد.در حالت كلي‌تر براي مهندسي معكوس در هر زمينه علاوه بر تسلط كامل به آن علم بايد به چند علم كناري و نزديك به آن نيز تسلط داشته باشيد. به‌عنوان مثال وقتي قصد داريد مهندسي معكوس سخت‌‌افزار انجام دهيد نمي‌توانيد فقط به سخت‌افزار تسلط داشته باشيد؛ در كنار اين علم بايد به موارد ديگري همچون تسلط بسيار زياد در زمينه نرم‌افزار هم توجه داشته باشيد.

يعني مهندسي معكوس علمي انفرادي است و يك نفر ‌بايد در چند زمينه مهارت داشته باشد؟

به‌هيچ‌وجه! مهندسي معكوس مي‌تواند علاوه بر انفرادي به‌صورت تيمي متشكل از چند كاربر كه هر كدام به يك علم تسلط دارند هم انجام شود. اما معمولا چون در ايران و برخي كشورهاي ديگر اين كار به‌صورت شخصي و زيرزميني انجام مي‌شود، تصور بر اين است كه مهندسي معكوس توسط يك فرد انجام مي‌شود. اما در برخي كشورها همچون چين و روسيه شركت‌هايي براي انجام كار مهندسي معكوس فعاليت مي‌كنند و در برخي ديگر همچون آمريكا دانشگاه‌هاي بسيار معروفي وجود دارند كه به مبحث مهندسي معكوس در علوم پزشكي مي‌پردازند. خودمان در ايران نيز در زمينه مهندسي معكوس صنايع نظامي بسيار قدرتمند هستيم و در زمينه‌هاي پزشكي نيز كارهاي زيادي در اين زمينه انجام شده است.

منظورتان از فعاليت زيرزميني چيست؟

اصطلاح زيرزميني به معناي آن است كه حمايت سازمان يا تشكيلات خاصي از اين مجموعه نمي‌شود و معمولا هم بچه‌هاي مهندسي معكوس كار سعي نمي‌كنند خودشان را معرفي كنند يا براي كسب شهرت كاري انجام دهند. بيشتر اين كار را به‌ دليل علاقه‌ و مهارتي كه به اين علم دارند انجام مي‌دهند و معمولا از اسم‌هاي مستعار هم براي خودشان استفاده مي‌كنند.

يعني دوره‌هاي آموزشي در زمينه مهندسي معكوس به‌طور رسمي در ايران وجود ندارد؟

تا جايي كه من اطلاع دارم جز در موارد معدود در رشته‌هاي رياضي و مشابه آن كه به بحث مهندسي معكوس روي الگوريتم‌ها، معادلات و اعداد پرداخته مي‌شود، چنين آموزش‌هايي وجود ندارد.

اين علاقه‌اي كه فرموديد مثل علاقه به هك‌كردن در ميان هكرهاست و كارهاي تخريب‌كننده است؟

به‌طور كلي مهندسي معكوس ابزار خيلي قدرتمندي است و هر ابزار قدرتمندي را مي‌توان در جهت تخريب هم مورد استفاده قرار داد. متاسفانه اين علم در ايران هم در برخي از موارد در جهت تخريب مورد استفاده قرار گرفته است. اما اگر بخواهيم جوانب خوب مهندسي معكوس را از هر لحاظ چه در سخت‌افزار، نرم‌افزار، صنايع و علوم مختلف در نظر بگيريم، مزايايي به مراتب بيشتر از ضررهايش دربردارد.

چطور مي‌توانيم با تخريب‌هاي اين علم مقابله كنيم؟

ما بايد خودمان از شركت‌ها، تشكيلات يا سايت‌هايي كه مي‌خواهيم رشد كنند حمايت كنيم. يعني اگر كرك يك برنامه يا حتي نام كاربري و رمزعبور دسترسي به يك سرويس پولي را در اختيار داريم، سعي كنيم آن را منتشر نكنيم. اگر استفاده از آن برنامه يا سرويس واقعا برايمان سودمند است نسبت به تهيه نسخه اصلي آن اقدام كنيم.معمولا كركرها يعني كساني كه كرك مي‌كنند، شعار معروفي دارند كه مي‌گويند: ما كرك كرديم براي استفاده و تست شخصي، اگر مي‌خواهيد به صورت جدي (تجاري) از برنامه استفاده كنيد، حتما برنامه مورد نظر را خريداري كنيد.

به‌نظر شما اين شعار بيشتر جنبه شوخي ندارد؟ چرا كه مشاهده مي‌كنيم همه از اين شعار استفاده مي‌كنند در صورتي كه خودشان در حال پخش كرك هستند!

هرچند اين شعار در بيش از 90درصد كرك‌ها مشاهده مي‌شود و در بسياري از كشورهاي خارجي موجب مي‌شود تا با سلب مسئوليت از سازنده كرك، امكان شكايت از آن وجود نداشته باشد، اما اين قانون در گروه‌هاي كرك و تشكيلات كركرها از اهميت بسيار برخوردار است. به محض اين‌كه مشاهده كنند فردي كرك را براي كسب منافع مالي به انجام مي‌رساند، او را از تيم و تشكيلات خود اخراج مي‌كنند.

يعني كرك‌كردن در كشورهاي خارجي جرم نيست؟

كرك‌كردن اگر براي خود شخص استفاده مالي نداشته باشد جرم نيست؛ به عبارتي وقتي نتوانند اثبات كنند فرد از كرك‌كردن يك برنامه استفاده مالي برده است، نمي‌توانند او را محكوم كنند و مادامي كه فرد كرك را حتي در سايت‌هاي مختلف منتشر كند، اما هيچ پولي براي اين كار دريافت نكند، جرمي را مرتكب نشده است.

تا جايي كه من اطلاع دارم شما خودتان مدير يكي از بزرگ‌ترين انجمن‌ها و تنها سايت زيرزميني در ايران با نام پي‌سي‌سون (PCSeven) هستيد كه بسياري از نوابغ مهندسي معكوس و علوم ديگر رايانه‌اي نيز در آن عضويت دارند و براي فعالان عرصه فناوري اطلاعات بسيار شناخته‌شده است. چند بار مشاهده شد كه اعضاي سايت شما نرم‌افزار‌هاي ايراني را براي نشان دادن ضعف امنيتي آنها كرك كردند، اما به دلايل مختلفي اين كرك‌ها در اينترنت منتشر شد و صدمات مالي به سازندگان اين نرم‌افزارها وارد كرد، آيا شما با اين كار موافق بوديد؟

با توجه به اين‌كه مديريت اين تيم و انجمن به عهده من است، هميشه نوك پيكان به سوي من گرفته مي‌شود؛ در حالي‌كه من و تيم اصلي هيچ نقشي در انتشار اين كرك‌ها نداشتيم و امكان كنترل هزاران كاربر نيز در توان يك نفر نيست. در هر حال اين موضوع مربوط به سال‌هاي قبل بود و چند سالي است كه به هيچ عنوان نرم‌افزاري ايراني‌ از طرف تيم ما كرك نشده و پس از شناخت اين شركت‌ها از مجموعه پي‌سي‌سون و اهدافش، اين مشكلات رفع شده و بسياري از شركت‌هاي ايراني در حال حاضر با ما همكاري دارند.

به‌نظر شما خود شركت‌ها چطور مي‌توانند از محصولاتشان حفاظت كنند؟ آيا استفاده از قفل‌هاي امنيتي روش مناسبي است؟

يكي از مشكلاتي كه هميشه با شركت‌ها مطرح مي‌شد و برخي آن را قبول داشته و برخي ديگر رد مي‌كردند، روش‌هاي جلوگيري از استفاده غيرمجاز از محصولاتشان بود. همان‌طور كه مي‌دانيد هيچ نرم‌افزاري را نمي‌توان نفوذناپذير دانست و صددرصد اطمينان داد كه قابل كرك شدن نيست. با توجه به همين مسأله پيشنهاد ما به اين شركت‌ها تمركز روي خدمات‌دهي و سرويس‌هاي پشتيباني و همين‌طور به روز نگه داشتن محصولاتشان بوده است؛ چرا كه تجربه ثابت كرده است كاربران حتي در صورتي كه كرك نرم‌افزار را در اختيار داشته باشند، براي استفاده از خدمات پشتيباني و به‌روزرساني‌ها اقدام به خريد نرم‌افزار مي‌كنند.به‌عنوان مثال شركت مايكروسافت به‌قدري روي سيستم‌هاي‌عاملش دسترسي دارد كه براحتي مي‌تواند سيستم‌هاي حفاظتي قدرتمندي را روي آنها پياده كند كه بمب‌هاي زماني، بررسي دوره‌اي ليسانس‌هاي صادره و... برخي از اين روش‌هاست. اما مشاهده مي‌كنيد كه اين شركت به جاي آن‌كه نيرو و سرمايه خود را صرف به‌كارگيري اين روش‌ها كند، در جهت پشتيباني كاربراني گام بر‌مي‌دارد كه نسبت به خريداري نسخه‌هاي اصلي سيستم‌عامل اقدام كرده‌اند. همچنين شركت اپل نيز هيچ قفلي را روي سيستم‌عامل Mac OS خود قرار نداده و اين اثباتي است براي توجه به سرويس‌هاي پشتيباني، به جاي هدر دادن سرمايه‌ها روي مباحث قفل گذاري.

پس چرا براي نصب نرم‌افزارها به صورت مجاني روي دستگاه‌هاي مجهز به سيستم‌عامل iOS بايد آنها را جيلبرك كرد؟

انجام مهندسي معكوسي روي سيستم‌عامل iOS جيلبرك ناميده مي‌شود كه قابليت دسترسي به فايل‌هاي سيستمي را در اختيار كاربران قرار مي‌دهد تا پس از برخورداري از اين حق دسترسي، با اعمال روش‌هاي مختلفي نسبت به نصب نرم‌افزارها بدون نياز به پرداخت هزينه آنها اقدام كنند، به عبارت ديگر جيلبرك‌كردن به معناي آن نيست كه شما نرم‌افزار كرك شده روي آيفون، آيپد يا آيپاد خود نصب كنيد، بلكه فقط دسترسي به فايل‌هاي سيستمي را فعال مي‌كند و به همين دليل جيلبرك در حال حاضر در آمريكا منع قانوني ندارد و دادگاه‌هاي مختلف هم در موارد بسياري رأي را به نفع افرادي صادر كردند كه جيلبرك را انجام داده بودند.

پيشتر اشاره كرديد كه مهندس معكوس‌كاران از مهارت و نبوغ بسيار زيادي برخوردارند. در حال حاضر اوضاع اين نوابغ در ايران چگونه است و در بازار كار چه جايگاهي دارند؟

متاسفانه فعاليت حوزه مهندسي معكوس نرم‌افزار در ايران اغلب زيرزميني بوده و توسط هيچ شخص يا سازماني مورد حمايت قرار نگرفته است. طي صحبت‌هايي كه با شركت‌هاي كوچك و بزرگ نرم‌افزاري در اين زمينه داشتيم در بهترين حالت توانسته‌ايم درخصوص ضريب ايمني قفل حفاظتي نرم‌افزارها به شركت مورد نظر مشاوره بدهيم و مشخص كنيم آيا قفل امنيتي نرم‌افزار مورد اطمينان است يا خير. حمايت خاصي از اين مبحث در ايران نمي‌شود و افرادي كه در اين حوزه فعاليت دارند، منبع درآمد خاصي از آن ندارند. البته بسياري از اين افراد در زمينه‌هاي ديگر همچون برنامه‌نويسي و... مهارت‌هاي بسيار زيادي دارند و با استفاده از اين مهارت‌ها در بازار كار به فعاليت مشغول هستند، اما اين‌كه بتوانند از اين علم و مهارتشان براي كسب درآمد استفاده كنند، بايد بگويم چنين محيطي براي آنها وجود ندارد.

به نظر شما ناتواني در پرداخت دستمزدهاي زياد مي‌تواند دليلي بر استفاده نكردن از اين نوابغ باشد يا شركت‌هاي ايراني به بحث امنيت نرم‌افزارها و قفل‌گذاري روي آنها چندان اهميت نمي‌دهند؟

اتفاقا شركت‌هاي ايراني خيلي بيشتر از شركت‌هاي خارجي به مبحث قفل و امنيت نرم‌افزارها اهميت مي‌دهند. هرچند در اين زمينه چندان موفق نبودند و اين ناموفق بودن نيز ناشي از بهره نبردن از مهندسان معكوس و تنوع در روش‌هاي برنامه‌نويسي و قفل‌گذاري بوده و صرفا به استفاده از نرم‌افزارها و روش‌هايي اكتفا كرده‌اند كه توسط شركت‌هاي خارجي ايجاد شده و فقط تغييراتي را در آنها ايجاد كرده و به اصطلاح آنها را بومي كرده‌اند.متاسفانه تا به‌حال سعي نشده است كه به‌طور كامل يك سيستم جامع قفل‌گذاري ايجاد شود و هميشه به اعمال تغييرات در سيستم‌هاي مشابه خارجي بسنده شده است. البته منكر نمي‌شويم كه در موارد معدودي براي ساخت اين سيستم‌ها تلاش‌هايي صورت گرفته است، اما از نظر من هيچ‌كدام نتوانسته ‌است چندان موفق باشد. يكي از مهم‌ترين دلايل عدم اين موفقيت نيز اين است كه اين عزيزان تلاشي در جهت استفاده از روش‌هاي نوين برنامه‌نويسي نداشته‌اند و هرگز هم سعي نشده مشاوره‌اي كامل از يك تيم مهندسي معكوس در زمينه امنيت نرم‌افزار‌ها گرفته شود.

به‌طور كلي براي مهندسي معكوس روي قفل يك نرم‌افزار به چه مهارت‌هايي نياز است و چه مراحلي را ‌بايد طي كرد؟

مهارت‌ها و ابزارهايي كه يك كركر نياز دارد در اعداد و ارقام و نوشته نمي‌گنجد. تجربه يك كركر خوب بايد در اين زمينه بسيار باشد. همچنين يك كركر خوب بايد به‌طور كامل از Packer‌ها شناخت داشته باشد. شناخت الگوريتم‌ها نيز داراي اهميت بسيار است. مهم‌ترين مهارت، شناخت و تسلط بر زبان اسمبلي است؛ چرا كه يك كركر پس از آن‌‌پك‌كردن يك نرم‌افزار و دي‌اسمبل‌كردن آن، همه چيز را در زبان اسمبلي مشاهده مي‌كند و چيزي جز صفر و يك در اختيار ندارد. در نهايت نيز در زبان اسمبلي با جستجوي كدهاي موردنظر براي خنثي كردن قفل نرم‌افزار اقدام مي‌كند.

يعني با تبديل يك نرم‌افزار به زبان اسمبلي، هيچ چيز از ديد كركر پنهان نمي‌ماند؟

در زبان صفر و يك هيچ چيز را نمي‌توان مخفي كرد. اما اين به معناي آن نيست كه كركر براحتي مي‌تواند در بخش‌هاي موردنظر خود در نرم‌افزار تغييرات ايجاد كند. در اين زبان نيز ممكن است سازنده يا قفل‌گذار برنامه، كدها را بسيار پيچيده كرده باشد تا فهم آن براي كركر سخت باشد. همچنين اين احتمال وجود دارد كه فايل اصلي نرم‌افزار به فايل‌هاي ديگري ارتباط داده شده باشد و براي برداشتن قفل نرم‌افزار به بررسي و شناخت عملكرد فايل‌هاي جانبي آن نيز نياز باشد.

باتوجه به شناختي كه از فعالان اين حوزه داريد، ايران به ارائه آموزش‌هاي رسمي در قالب رشته‌هاي دانشگاهي در اين زمينه نيازمند است؟

طبيعتا پتانسيل خيلي بالايي در اين زمينه در ايران وجود دارد و مطمئنا مورد استقبال تعداد زيادي از افراد نيز قرار خواهد گرفت.

فكر مي‌كنيد در انجمني كه مديريتش را به‌عهده داريد چند نفر از نخبگان و نوابغ ايراني عضو هستند؟

به جر‌أت مي‌توانم بگويم بيش از 1500 نفر از اعضاي اين سايت از جمله نخبگان فناوري اطلاعات هستند.

جوان‌ترين و مسن‌ترين نابغه‌هاي ايراني كه در پي‌سي‌سون عضويت دارند چند سالشان است؟

يكي از دوستان 16 يا 17 سال دارد و تقريبا مي‌توانم بگويم هيچ Packer وجود ندارد كه نتواند آن را شناسايي و آن‌‌پك كند. همچنين مسن‌ترين كاربر نيز حدودا 45 سال دارد و اين توانايي را دارد تا به تنهايي بسياري از نرم‌افزارها با انواع روش‌هاي محافظتي را كرك كند.

چه دليلي وجود دارد كه اين اعضا در يك انجمن زيرزميني با يكديگر ارتباط داشته باشند؟

هركاربر، زماني كه اطلاعاتي را از يك مجموعه كسب كند و چيزي ياد بگيرد، برايش سودمند است. در اين شرايط هميشه منافع مالي مطرح نيست و همين كه كاربر بتواند به مسائل و مواردي بپردازد كه در سطح كاربران عمومي نيست و ابزارهايي در اختيار كاربران قرار گيرد كه هرجايي يافت نمي‌شود، دليلي بر تمايل به عضويت در اين‌گونه سايت‌هاست.

پس چرا چنين سايتي جنبه عمومي ندارد و همچنان به‌صورت زيرزميني فعاليت مي‌كند؟

يكي از دلايل عموميت نداشتن اين‌گونه سايت‌ها، بحث كنترل روي آن است. به‌طور منطقي وقتي تعداد زيادي از كاربران با سطح علمي بسيار بالا در كنار يكديگر به بحث و تبادل نظر مشغول باشند، امكان كنترل افرادي كه اطلاعات خيلي كمي دارند بسيار سخت است. در چنين شرايطي اين مجموعه براي كاربران با سطح علمي پايين، خيلي سرد و خشك به‌نظر مي‌رسد؛ زيرا از بسياري از مباحث اطلاع پيدا نمي‌كنند و حتي در مواردي نيز مباحث جدي كه بين نخبگان مطرح مي‌شود را مختل مي‌كنند!

در حال حاضر در ايران هم گروهي وجود دارد كه در سطح كركرهاي جهاني مطرح باشند؟

در حال حاضر گروهي متشكل از 12 نفر ايراني با نام UnREal RCE در زمينه مهندسي معكوس نرم‌افزار با يكديگر همكاري مي‌كنند و كرك برخي از معروف‌ترين برنامه‌ها در دنيا همچون ديكشنري بابيلون و نرم‌افزار مديريت دانلود IDM از جمله ريليزهاي (Release) دائم اين گروه به‌شمار مي‌رود.

به عنوان آخرين سوال، آيا خودتان نرم‌افزارهاي كرك شده را به كار مي‌بريد يا نسخه‌هاي اصلي آنها را خريداري مي‌كنيد؟

اگر بگويم تا به ‌حال از نرم‌افزارهاي كرك شده استفاده نكرده‌ام، كاملا دروغ است. اما علاقه خاصي كه از سال‌ها پيش داشته‌ام اين بوده كه نرم‌افزار را به‌صورت نسخه اصلي ببينم.به‌عنوان مثال نرم‌افزاري همچون IDM را كه توسط خودمان كرك مي‌شود به‌صورت اصلي براي چند سال است كه خريداري مي‌كنم؛ چون معتقدم نرم‌افزاري است كه ارزش خريد دارد و براي حمايت از سازندگان آن با كمال ميل اين خريد را انجام مي‌دهم.






تاريخ : سه شنبه 24 مرداد 1391برچسب:, | | نویسنده : مقدم |